package com.djf.djfcs.config;

import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author 26393
 * @Date 2025/7/1 18:42
 * @Version 1.0
 */
@Configuration // 标记这是一个配置类
public class ElasticsearchConfig {

    // 从配置文件 (application.properties) 中读取 Elasticsearch 的主机名，默认是 localhost
    @Value("${elasticsearch.host:localhost}")
    private String host;

    // 从配置文件中读取端口，默认是 9200
    @Value("${elasticsearch.port:9200}")
    private int port;

    // 从配置文件中读取协议，默认是 http
    @Value("${elasticsearch.protocol:http}")
    private String protocol;

    @Bean // 声明一个 Bean，由 Spring IoC 容器管理
    public RestHighLevelClient restHighLevelClient() {
        // 创建并返回 RestHighLevelClient 实例
        return new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost(host, port, protocol) // 使用配置的主机、端口和协议
                )
        );
    }
}
